package com.firefly.admin.system.service;

import com.firefly.admin.system.entity.FySystemUserNotice;

import java.util.List;

public interface FySystemUserNoticeService {

    /**
     * 查询用户通知公告信息
     *
     * @param noticeId 通知公告ID
     * @return 用户公告信息
     */
    FySystemUserNotice alreadyRead(Long noticeId);

    /**
     * 根据用户消息ID查询用户消息信息
     *
     * @param noticeId 用户消息ID
     * @return 用户消息信息
     */
    FySystemUserNotice findByNoticeId(Long noticeId);

    /**
     * 新增用户消息信息
     *
     * @param userId     用户ID
     * @param noticeId   消息ID
     * @param noticeType 公告类型
     */
    void save(Long userId, Long noticeId, String noticeType);

    /**
     * 通过通知公告类型查询用户公告信息
     *
     * @param noticeType 公告类型
     * @return 用户公告列表
     */
    List<FySystemUserNotice> findByNoticeType(String noticeType);

    /**
     * 查询用户未读通知公告条数
     *
     * @return 未读条数
     */
    int getUnReadNoticeCount();

    /**
     * 通过公告ID删除用户公告信息
     *
     * @param noticeId 公告ID
     * @return 操作结果
     */
    int deleteByNoticeId(Long noticeId);

    /**
     * 通过公告ID查询用户公告信息列表
     *
     * @param noticeId 公告ID
     * @return 用户公告信息列表
     */
    List<FySystemUserNotice> findListByNoticeId(Long noticeId);
}
